查看原文
其他

NIPS 2018(oral):通过端到端几何推理发现潜在3D关键点

极市平台 2021-09-20

以下文章来源于论智 ,作者Bot

极市平台是专业的视觉算法开发和分发平台,加入极市专业CV交流群,与6000+来自腾讯,华为,百度,北大,清华,中科院等名企名校视觉开发者互动交流!更有机会与李开复老师等大牛群内互动!

同时提供每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流点击文末“阅读原文”立刻申请入群~

来源:论智


编者按:关键点检测是许多计算机视觉任务的基础,如人脸识别、动作检测和自动驾驶等。而在这届NIPS上,来自Google AI的Supasorn Suwajanakorn等人带来了关于3D关键点检测的一种新方法:端到端几何推理。如果你没听说过这位一作的名字,没关系,你一定见过SIGGRAPH 2017上震惊世界的奥巴马造假视频,在那篇论文中,他也是一作。



摘要

本文提出KeypointNet,这是一个端到端的几何推理框架,可用于学习一组优化类3D关键点,并对它们进行检测。给定单个图像,KeypointNet能针对下游任务提取优化关键点集。我们通过提出一个可微的对象来展示这个关于3D姿态估计的框架,它的目的是恢复同一对象两个视图(2D)之间相对姿势的最佳关键点集,跨视角、跨类发现几何和语义一致的关键点。


重要的是,我们发现这种方法不需要任何基于ground-truth的关键点注释标记,在使用同一神经网络架构的情况下,它的效果优于完全监督基线。关于汽车、椅子和飞机等对象的3D关键点可视化,请看keypointnet.github.io。


简介

卷积神经网络(CNN)的研究已经证实,特征提取和分类管道的联合优化可以显著提升网络的对象识别性能。但话虽如此,目前一些解决几何视觉问题的方法,比如3D重建和shape alignment,它们都包含一个单独的关键点检测模块,在检测结果上再运用几何推理。在本文中,我们探讨了一个问题,即能否构建一个端到端的几何推理模型,把关键点直接联合优化为下游任务的一组潜在变量。


请设想这么一个例子:图像中汽车的3D姿势问题。按照常规做法,我们应该先检测所有关键点,然后在几何推理框架内应用这些点,恢复汽车的3D姿势或某个角度的视图。实现这一点的手段有很多,比如手动注释关键点,然后进行监督学习,也可以开发一组关键点检测器,尽管这容易出错。


但这种方法成本太高了,而且关键点的选择也缺乏一致性和明确性。为了获得更合理的关键点集,我们应该根据下游任务的需要,直接优化下游任务需要的关键点,从中获取独特性、易于检测和多样性等目标关键点属性。


KeypointNet的效果

首先,我们来看看KeypointNet的具体效果,下面是“飞机”的关键点预测情况,可以关注最后一行,尤其是最后两个。它们的机翼朝向难辨,因此关键点总是变动:



下面是“汽车”:



模型的整体预测效果很好,但请注意最后一行。其中第二辆车是黑色的,和背景颜色一致,这显然影响了KeypointNet的预测效果;而第三辆车之所以也会出现关键点变动,是因为它的车头和车尾太相似了,让模型感到迷惑。




上图是用不同数量的关键点[3,5,8,10,15,20]训练网络的结果,可以发现网络最先找到的关键点在飞机头部和机翼,随着数量增加,KeypointNet跟踪的部分更多(颜色是独立的,和预测结果无关)。


以上都是简单旋转的预测结果,那么如果目标对象是个可形变的物体,KeypointNet的稳健性会如何?



如这些动图所示,图中汽车会动态扭曲,但还能保持原有形状。对于这类目标,KeypointNet预测的关键点还是很稳定,效果也很好。


最后,也是最重要的,生成、检测关键点的作用是用于人脸识别、姿态估计等任务,那么KeypointNet在现实场景下是否也有上述效果:



上图右侧是成功预测关键点的示例,右侧是失败案例。总体而言,这个模型在大多数正常汽车图像上表现出色,但它很难处理自带广角畸变的图像、花纹复杂的汽车和包含镜面高光的图像。


端到端优化3D关键点

这一节是对KeypointNet的概述。


给定已知对象类别中的单个图像,这个模型可利用像素坐标和相关联的深度值,预测并生成3D关键点的有序列表。这些关键点需要在几何上和语义上保持一致,如下图所示,即便是外形不同的椅子,KeypointNet始终可以使用相同的关键点,而且它们不会随视角变化发生变动,也能预测被遮挡的部分(椅子后腿)。



KeypointNet有N个头,因此可以提取N个关键点,同一个头在提取关键点时主要参考语义是否一致。


和完全监督学习方法相比,这种做法没有事先定义关键点位置,相反地,它专注于训练时的相对姿态估计,也就是对于同一目标的两个2D不同视图(变换T),找到图一中的关键点P1和它在图二中的对应关键点P2,用这两个点构建3D关键点列表。如下图所示:



在训练期间,同一对象的两个视图被作为KeypointNet的输入,已知视图变换T=(R, t),P1和P2是一致关键点,可以从中提取3D关键点


把两个关键点合并成一个3D关键点的目标函数是O(P1, P2),有了它,我们就能可以从图像到关键点列表的参数映射。这个目标函数由两大关键构成:


▪ 多视图一致性损失,用于在已知转换T的情况下,衡量两组点之间的差异。

▪ 相对姿态估计损失,用于惩罚真实旋转R和P1、P2校正的旋转Rˆ之间的差异。


实验证明,它们能帮模型发现重要的关键点,其中有一些甚至和人工特别手动标注的点一致。需要注意的是,这些具有语义意义的关键点不会被直接优化,可以它们对于下游任务可能不是最佳的。


论文地址:arxiv.org/pdf/1807.03146.pdf






*推荐文章*

人体骨骼关键点检测综述

NIPS 2018 | 中科院自动化所两篇入选论文:高清真实图像生成领域及GAN研究在人脸识别领域的进展


每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流点击左下角“阅读原文”立刻申请入群~


视频 小程序 ,轻点两下取消赞 在看 ,轻点两下取消在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存